#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
检查数据库中的表和记录数
"""

import sqlite3
import os

def check_db():
    """检查数据库中的表和记录数"""
    # 获取当前脚本所在目录
    current_dir = os.path.dirname(os.path.abspath(__file__))
    db_path = os.path.join(current_dir, 'xhs_database.db')
    
    # 检查数据库文件是否存在
    if not os.path.exists(db_path):
        print(f"数据库文件 '{db_path}' 不存在!")
        return
    
    try:
        # 连接到数据库
        conn = sqlite3.connect(db_path)
        cursor = conn.cursor()
        
        print(f"使用数据库: {db_path}")
        
        # 获取所有表名
        cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
        tables = [row[0] for row in cursor.fetchall()]
        
        if not tables:
            print("数据库中没有找到表!")
            return
        
        print(f"数据库中的表（{len(tables)}个）：")
        for i, table in enumerate(tables):
            try:
                cursor.execute(f"SELECT COUNT(*) FROM [{table}]")
                count = cursor.fetchone()[0]
                print(f"  {i+1}. {table}: {count} 条记录")
            except sqlite3.Error as e:
                print(f"  {i+1}. {table}: 无法计数 - {e}")
        
        # 检查一些示例数据
        print("\n示例数据检查：")
        
        # 检查notes表的示例数据（如果存在）
        if 'notes' in tables:
            cursor.execute("SELECT * FROM notes LIMIT 3")
            rows = cursor.fetchall()
            if rows:
                print("\n笔记表的示例数据：")
                for i, row in enumerate(rows):
                    print(f"  记录 {i+1}: {row}")
        
        # 检查comments表的示例数据（如果存在）
        if 'comments' in tables:
            cursor.execute("SELECT * FROM comments LIMIT 3")
            rows = cursor.fetchall()
            if rows:
                print("\n评论表的示例数据：")
                for i, row in enumerate(rows):
                    print(f"  记录 {i+1}: {row}")
        
        # 关闭连接
        conn.close()
        
        print("\n数据库检查完成！")
    except Exception as e:
        print(f"检查数据库时出错: {e}")

if __name__ == "__main__":
    check_db() 